package net.qhzw.admin.component;


import cn.hutool.core.date.DateUtil;
import net.qhzw.common.util.UUIDUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.Date;

@Component
public class FileTemplate {

    @Value("${config.fileRealPath}")
    private String filePath; //项目上传文件地址

    /***
     * 文件上传
     * @param file
     * @return
     * @throws Exception
     */
    public String upload(MultipartFile file) throws Exception {
        if (file.isEmpty()) {
            throw new RuntimeException("上传的文件为空");
        }
        // 文件名
        String fileName = file.getOriginalFilename();
        // 获取文件后缀名
        String extension = fileName.substring(fileName.indexOf("."));
        // 上传文件的路径
        String uploadFolder = filePath;
        // 生成一个新的文件名
        String fileRename = DateUtil.format(new Date(), "yyyyMMddHHmmss");
        fileName = fileRename + UUIDUtil.getRandomString(6) + extension;
        File dest = new File(uploadFolder + fileName);
        // 检测文件目录是否存在 不存在则创建
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        file.transferTo(dest);
        // 返回虚拟文件访问路径
        return fileName;
    }


}
